package com.ruoyi.other.mapper;

import com.ruoyi.other.domain.CityConfig;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;

import java.util.List;

/**
 * 城市管理Mapper接口
 * 
 * @author ruoyi
 * @date 2025-04-16
 */
public interface CityConfigMapper 
{
    /**
     * 查询城市管理
     * 
     * @param id 城市管理主键
     * @return 城市管理
     */
    public CityConfig selectCityConfigById(Long id);

    /**
     * 查询城市管理列表
     * 
     * @param cityConfig 城市管理
     * @return 城市管理集合
     */
    public List<CityConfig> selectCityConfigList(CityConfig cityConfig);

    /**
     * 新增城市管理
     * 
     * @param cityConfig 城市管理
     * @return 结果
     */
    public int insertCityConfig(CityConfig cityConfig);

    /**
     * 修改城市管理
     * 
     * @param cityConfig 城市管理
     * @return 结果
     */
    public int updateCityConfig(CityConfig cityConfig);

    /**
     * 删除城市管理
     * 
     * @param id 城市管理主键
     * @return 结果
     */
    public int deleteCityConfigById(Long id);

    /**
     * 批量删除城市管理
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteCityConfigByIds(Long[] ids);

    @Select("select count(*) from t_city_config where city_name = #{cityName}")
    Integer selectOne(@Param("cityName") String cityName);

    List<CityConfig> selectAllCity();

    @Select("select id from t_city_config where city_name = #{partnerName}")
    Long selectIdByName(@Param("partnerName") String partnerName);

    @Select("select * from t_city_config where partner_id = (select id from t_city_config where city_name = #{partnerName}) and city_name = #{cityName}")
    CityConfig selectCity(@Param("partnerName")String partnerName,@Param("cityName") String cityName);

    @Select("select count(*) from t_city_config where partner_id = #{partnerId}")
    Integer seleChildrenCount(@Param("partnerId") Long partnerId);

    @Select("select * from t_city_config where city_name = #{partnerName}")
    CityConfig selectPartner(@Param("partnerName")String partnerName);

    @Select("select city_name from t_city_config where id = #{cityId}")
    String selectCityName(@Param("cityId") Long cityId);
}
